package com.cmft.waltzpagemanager

import android.app.Activity
import android.os.Bundle
import androidx.fragment.app.Fragment
import org.json.JSONObject

interface IContainer {
    /**
     * 容器名称
     */
    fun getName(): String

    /**
     * 根据pageId启动页面,param可能为null
     */
    fun startPage(activity: Activity, pageId: String, param: Bundle?, requestCode: Int)

    /**
     * 根据pageApp启动页面, param可能为null
     */
    fun startPage(activity: Activity, pageApp: PageApp, param: Bundle?, requestCode: Int)

    /**
     * 根据pageId获取fragment, param可能为null
     */
    fun getPageFragment(pageId: String, param: Bundle?): Fragment

    /**
     * 根据pageApp启动获取fragment, param可能为null
     */
    fun getPageFragment(pageApp: PageApp, param: Bundle?): Fragment

    /**
     * 用户已登录
     */
    fun didLogin(userInfo: JSONObject?)

    /**
     * 用户已登出
     */
    fun userDidLogout()

    /**
     * 用户信息已变更
     */
    fun infoDidChange(userInfo: JSONObject?)

    /**
     * 用户项目信息已变更
     */
    fun didChangeCurrentProject(userInfo: JSONObject?)
}